package com.wctj.api.business.common.dto;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 开放平台支付记录
 * @author carol
 * @date   2024-09-27 08:58:27
 */
public class DdwxPaymentRecordDTO {


    private Long id;

    public DdwxPaymentRecordDTO() {
    }

    /**
     *调用的业务类型：zgzg:中谷纵观
     */
    private String bizCode;

    /**
     *第三方支付发启应用的app_id
     */
    private String appId;

    /**
     *产生数据的支付平台目前有（招商 CMB,汇付天下 HUIFU_ADAPAY...）
     */
    private String platform;

    /**
     *业务侧支付订单号
     */
    private String bizOrderNum;

    /**
     *开放平台生成的支付订单号
     */
    private String payOrderNum;

    /**
     *支付渠道
https://docs.adapay.tech/api/appendix.html#id2
     */
    private String payChannel;

    /**
     *交易金额
     */
    private BigDecimal money;

    /**
     *第三方支付平台返回的支付编号
     */
    private String payNum;

    /**
     *支付类型
RECHANGE(1, '充值')
    ,SETTLEMENT(2, '结算')
    ,WITHDRAWAL(3, '取现')
     */
    private String payType;

    /**
     *0：进行中，1：完成，2：失败
     */
    private Integer status;

    /**
     *收到第三方消息的交易时间
     */
    private LocalDateTime payTime;

    /**
     *乐观锁机制
     */
    private Integer version;


    public DdwxPaymentRecordDTO(Long id, Integer status, LocalDateTime payTime) {
        this.id = id;
        this.status = status;
        this.payTime = payTime;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getBizCode() {
        return bizCode;
    }

    public void setBizCode(String bizCode) {
        this.bizCode = bizCode;
    }

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getPlatform() {
        return platform;
    }

    public void setPlatform(String platform) {
        this.platform = platform;
    }

    public String getBizOrderNum() {
        return bizOrderNum;
    }

    public void setBizOrderNum(String bizOrderNum) {
        this.bizOrderNum = bizOrderNum;
    }

    public String getPayOrderNum() {
        return payOrderNum;
    }

    public void setPayOrderNum(String payOrderNum) {
        this.payOrderNum = payOrderNum;
    }

    public String getPayChannel() {
        return payChannel;
    }

    public void setPayChannel(String payChannel) {
        this.payChannel = payChannel;
    }

    public BigDecimal getMoney() {
        return money;
    }

    public void setMoney(BigDecimal money) {
        this.money = money;
    }

    public String getPayNum() {
        return payNum;
    }

    public void setPayNum(String payNum) {
        this.payNum = payNum;
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public LocalDateTime getPayTime() {
        return payTime;
    }

    public void setPayTime(LocalDateTime payTime) {
        this.payTime = payTime;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }
}